نحوه دسترسی و کار با ورک شیت های اکسل با استفاده از کدهای VBA
امروز با مطلب جدید دیگری در زمینه کار با ورک شیت های اکسل و نحوه فراخوانی و انتخاب این شیت های کاری در اکسل با استفاده از برنامه نویسی VBA در خدمت شما هستیم .
همانطور که می دانید نرم افزار اکسل متشکل از صفحات کاری می باشد که در اصطلاح به آنها Worksheet یا شیت های کاری می گوییم .
هر فایل اکسل می تواند متشکل از یک یا چندین و چند شیت کاری باشد .
هر شیت کاری در اکسل دارای یک نام مختص به خود می باشد .
حال این نام می تواند نامی باشد که بصورت پیشفرض از سوی اکسل به هر صفحه کاری می دهد یا اینکه نامی باشد که از طرف شما برای شیت های مورد نظر تعریف می شود .
اکسل در حالت عادی از شماره گذاری های متوالی برای نام گذاری شیت ها استفاده می کند .
یعنی به محض اینکه شما یک شیت کاری را به مجموعه شیت های کاری خود اضافه می کند اکسل با توجه به آخرین شماره شیت قبلی شماره جدیدی را برای شیت تازه ایجاد شده در نظر می گیرد .
اما اگر بخواهید که کار نام گذاری شیت ها را خود شما بر عهده بگیرید فقط کافی است بر روی تب مربوط به نام شیت مربوطه یک کلیک راست کرده و گزینه Rename را انتخاب کنید .
حالا اکسل این امکان را برای شما فراهم می کند که نام مورد نظر خود را برای شیت مربوطه وارد کنید.
فقط باید این نکته را مد نظر قرار دهید که به هیچ عنوان اسامی مربوط به دو شیت کاری نمی توانند با هم یکسان باشند .
علاوه بر این در محیط کاری اکسل شما به راحتی می توانید بر روی تب مربوط به هر شیت کاری رفته و با یک کلیک ماوس صفحه مورد نظر را باز کرده و در داخل آن شروع به کار کنید .
تمامی این کارها را ما با دخالت مستقیم خود و یا کاربر باید به سرانجام برسانیم .
اما امروز و در این مطلب می خواهیم با هم یاد بگیریم که چطور تمامی این کارها با استفاده از برنامه نویسی VBA انجام دهیم .
مواردی که امروز در این خصوص با هم بررسی می کنیم شامل موارد زیر است.
۱- تفاوت بین Sheets و Worksheets در چیست ؟
۲- چگونه بک شیت کاری را فعال کنیم .؟
۳- چگونه یک شیت کاری را انتخاب کنیم .؟
۴- نحوه انتخاب یک شیت کاری با استفاده از نام آن
۵-نحوه انتخاب یک شیت کاری با استفاده از شماره ایندکس آن
۶- نحوه انتخاب یک شیت کاری با استفاده از نامگذاری شیت کاری در محیط VBA
۷ – نحوه تغییر نام یک شیت با استفاده از کد نویسی
۸ – استفاده از حلقه ها در کار با ورک شیت ها.
بنابراین با من همراه باشید تا با هم به بررسی یک به یک این سوالات ژرداخته و ژاسخ هر کدام را با هم فرا بگیریم .
یک مطلب خواندنی : باورهای درست و غلط در مورد اکسس
تفاوت بین Sheets و Worksheets در چیست ؟
ما در برنامه نویسی در محیط اکسل با اصطلاحات متعددی سر کار داریم
یکی از این اصطلاحات Workbook است که در اصطلاح کلی به همان فایل اکسلی گفته می شود که باز بوده و در حال کار کردن با آن هستیم .
اما در این بین ما اصطلاحات دیگری داریم تحت عنوان Worksheet و Sheets .
این دو اصطلاح در ظاهر شبیه هم هستند و در بسیاری از موارد توسط کاربران به جای یکدیگر استفاده می شوند .
اما ما امروز در اینجا می خواهیم بطور اصولی به این دو اصطلاح پرداخته و جایگاه هر کدام از آنها را با یکدیگر مورد بررسی دقیق قرا دهیم .
گفتیم که ما هر فایل اکسل را تحت عنوان Workbook می شناسیم .
حالا خود این ورک بوک شامل دو زیر مجموعه است .
مجموعه اول همان Worksheet ها می باشند .
ورک شیتها در واقع یک مجموعه یا کلکسیونی از Sheet ها هستند .
از طرفی دیگر Sheets ها نیز مجموعه ای هستند که شامل شیتهای کاری و شیتهای چارت یا همان chart sheets هستند .
اجازه بدهید با استفاده از تصویر زیر این دو مفهوم را بهتر توضیح بدهم .
مزلب خواندنی دیگر : اکسس درکنار اکسل ، ۴ دلیل که باید از آنها در کنار هم استفاده کنید ؟
ما در این تصویر اگر بخواهیم worksheet ها را مشخص کنیم باید بگوییم که در این ورک بوک سه worksheet شامل worksheet 2 -worksheet و ۳ worksheet وجود دارند .
در طرف مقابل هم اگر بخواهیم Sheet های موجود در این ورک بوک را نام ببریم باید بگوییم که این ورک بوک دارای ۴ شیت شامل worksheet 2 -worksheet و ۳ worksheet و همچنین Chart Sheet می باشد .
پس این از تفاوت بین شیت و ورک شیت در برنامه نویسی VBA
اما در اینجا همین نکته را هم به شما بگویم که اگر شما در یک ورک بوک فقط ورک شیت داشته باشد و در آن ورک بوک اثری از چارت شیت نبود در این صورت هر دو اصطلاح شیت و ورک شیت معنا و مفهوم یکسانی با هم خواهند داشت .
به عبارتی دیگر فصل ممیز بین دو اصطلاح شیت و ورک شیت در اکسل و برنامه نویسی VBA وجود یا عدم وجود Chart Sheet می باشد .
حا که ببرسی این دو مفهوم پرداخته و تفاوت هر کدام را باهم تشخیص دادیم می توانیم به سراغ سرفصل ها و سوالات بعدی در این آموزش برویم .
چگونه یک شیت کاری را فعال کنیم .؟
نرم افزار اکسل به گونه ای طراحی شده است که در هر لحظه فقط و فقط یک شیت کاری از بین چندین شیت موجود در آن بصورت فعال می باشد .
حالا ما می خواهیم ببینیم که چگونه می توانیم از طریق کد نویسی یک شیت را در اکسل فعال کرده و به اشیای موجود در آن دسترسی پیدا کنیم
برای فعال کردن یک شیت کاری از طریق برنامه نویسی ما باید از متد Activate استفاده کنیم . .
فعال کردن یک شیت کاری با استفاده از نام آن
گفتیم که تمامی شیت های کاری در اکسل دارای یک نام منحصر به فرد و مختص به خود هستند .
ساده ترین راهی که با استفاده از آن می توانیم یک شیت کاری را فعال کنیم این است که نام شیت کاری خود را در کد مورد نظر خود ذکر کنیم .
بعنوان مثال به کد زیر دقت کنید .
Worksheets("mysheet").Activate
ما در این کد با استفاده از متد Activate از برنامه می خواهیم که شیت کاری تحت عنوان “mysheet” را برای ما فعال کند.
فعال کردن یک شیت کاری با استفاده از شماره ایندکس مربوط به آن شیت کاری .
نرم افزار اکسل بعد از ایجاد یک شیت کاری علاوه بر اینکه یک نام را برای این شیت در نظر می گرد یک شماره منحصر بفرد را نیز برای آن تعریف می کند .
این شماره منحصر به فرد را تحت عنوان ایندکس می شناسیم و اکسل با استفاده از این عدد موقعیت یک شیت کاری را بین شیت های کاری موجود مشخص می کند
برای فعال کردن یک شیت کاری می توانیم از طریق همین شماره ایندکس استفاده کنیم .
بعنوان مثال به کد زیر توجه کنید .
Workbooks(1).Activate
در اینجا ما فارغ از اینکه چه تعداد ورک شیت کاری داریم از برنامه خواسته ایم که اولین ورک شیت از مجموعه ورک شیتهای موجود را برای ما فعال کند باید این نکته را بدانیم که اکسل کار ایندکس گذاری شیتها را از عدد ۱ شروع می کند
ما در کد بالا تعیین کردیم که اولین شیت کاری برای ما فعال شود .
با استفاده از کد زیر می توانیم کاری کنیم که بدون اینکه بدانیم چه تعداد شیت کاری داریم آخرین شیت مربوطه را برای ما فعال نماید .
Sheets(Sheets.Count).Activate
نحوه انتخاب یک شیت کاری با استفاده از نامگذاری شیت کاری در محیط VBA
یکی دیگر از روش هایی که با استفاده از آن می توانیم یک شیت کاری را در محیط اکسل فعال کنیم استفاده از نامی است که برای آن شیت در محیط برنامه نویسی VBA می توانیم اختصاص دهیم .
به عنوان مثال به تصویر زیر نگاه کنید .
ما در اینجا سه شیت کاری داریم که یکی از آنها را تحت عنوان mysheet نام گذاری کرده ایم .
حالا به راحتی می توانیم با استفاده از این نام شیت مربوطه را فعال کنیم .
برای این منظور از کد زیر استفاده می کنیم .
Sub test() mysheet.Activate End Sub
نحوه تغییر نام یک شیت با استفاده از کد نویسی
اکسل از دو طریق امکان تغییر نام شیتها را در اختیار ما می گذارد .
اول اینکه بصورت مستقیم و بطور دستی در محیط خود اکسل می توانیم این کار را انجام دهیم .
برای این منظور کافی است بر روی شیت کاری کلیک راست نموده و گزینه Rename را انتخاب کرده و نام مورد نظر خود را وارد کنید .
اما در روش دوم ما می توانیم همین کار را با استفاده از کد نویسی در محیط اکسل انجام دهیم .
بعنوان مثال ما با استفاده از کد زیر می توانیم نام شیت جاری خود را تغییر دهیم .
()Sub changename "سافت پلاس" = Sheet1.Name End Sub
نحوه کار با یک شیت در ورک بوک مجزا
تمامی مواردی که ما تا به اینجا بررسی کردیم مربوط به شیت هایی بودند که همگی در یک شیت کاری واحد قرار دارند .
اما اگر بخواهیم از یک ورک بوک به ورک بوک دیگری دسترسی پیدا کنیم و با آنها کار کنیم می توانیم از طریق کد نویسی این کار را انجام دهیم .
بعنوان مثال به کد های زیر توجه کنید .
Workbooks("myfile.xlsm").Worksheets("Sheet1").Activate
در کد بالا ما یک فایل داریم تحت عنوان myfile که شیت شماره ۱ آن را فعال کرده ایم .
در مورد این کد باید به دو نکته زیر توجه کنید .
اول اینکه حتما باید نام فایل خود را به همراه فرمت آن ذکر کنیم .
نکته دوم این که حتما باید فایل مورد نظر ما در حال حاضر باز باشد تا امکان کار با آن وجود داشته باشد در غیر اینصورت اجرای کد بالا ما را با ژیغام خطا مواجه می کند .
تفاوت بین Select sheet و Active sheet
در اینجا می خواهیم به بررسی دو اصطلاح Active sheet و select sheet در اکسل بپردازیم و تفاوت آنها را با هم بررسی کنیم
Active sheet در اصطلاح به شیتی گفته می شود که هم اکنون فعال است و ما در حال کار کردن بر روی آن هستیم .
نکته مهم در خصوص Active sheet این است که اگر در اکسل چندین شیت داشته باشیم ما در آن واحد فقط می توانیم یک شیت را فعال کنیم .
در مقابل select sheet اشاره به شیت یا شیت هایی دارند که که ما آنها را به حالت انتخاب درآورده ایم .
بر خلاف خاصیت Active sheet که ما فقط قادر به فعال نمودن یک شیت کاری از بین شیت های مختلف بودیم در متد select sheet می توانیم بصورت همزمان بیش از دو یا چند شیت را به حالت انتخاب در آوریم .
بعنوان مثال به کد های زیر دقت کنید .
Worksheets(Array("Sheet2", "Sheet3")).Select
ما در اینجا با استفاده از آرایه توانستیم شیت های مورد نظر را به حالت انتخاب درآوریم .
اطلاق نام یک ورک شیت به یک متغیر
یکی از کارهایی که در برنامه نویسی می توانیم انجام دهیم این است که یک متغیر را تعریف نموده و برای مقدار آن متغیر نام شیت کاری خود را تعریف کنیم تا در این متغیر ذخیره شود .
از این به بعد می توانیم به جای نام شیت کاری که می تواند یک نام طولانی باشد به سادگی به نام متغیری اشاره کنیم که شیت کاری ما را در خود ذخیره نموده است .
بعنوان مثال به کدهای زیر توجه کنید .
Dim ws as worksheet ("Set ws = Sheets("Sheet1 ws.Activate
ما در خط اول از این کد ها یک متغیر تعریف کردیم از نوع ورک شیت .
در خط دوم شیت کاری مورد نظر خود را به این متغیر معرفی و نام آن را در این متغیر قرار دادیم .
در خط آخر هم با استفاده از متغیر خود کد شیت مورد نظر را به حالت فعال درآوردیم .
کار با ورک شیت ها با استفاده از حلقه ها در اکسل
کار با ورک شیت ها تا مادامی که تعداد آنها کم باشد مشکل خاصی را ایجاد نمی کند .
اما تصور کنید که تعداد ۵۰ شیت کاری دارید و می خواهید رنگ مربوط به هر تب از شیت ها را به رنگ سبز تغییر دهید .
یک راه این است که این عملیات را خود بر روی تک تک شیت ها انجام دهید .
اما راه بهتر که هم سریعتر است و هم بدون درد سر این است که از کد نویسی استفاده کنیم .
برای اینکه بتوانیم این کار را با استفاده از کدها به سرانجام برسانیم باید از حلقه ها در ساختار کدهای خود استفاده کنیم .
به کدهای زیر توجه کنید .
Dim ws As Worksheet For Each ws In Worksheets ws.Tab.Color = vbGreen Next
کافی است کدهای بالا را در محیط اکسل خود اجرا کنید می بینید که با استفاده از این کدها به راحتی می توانید رنگ مربوط به تب هر تعداد شیت کاری که داشته باشید را در یک لحظه به رنگ مورد نظر خود تغییر دهید .
این مطلب به مرور زمان تکمیل می شود…… .
در ضمن ما در صفحه اینستاگرام خود اقدام به تهیه آموزش های کوتاه تصویری در خصوص کار با نرم افزار اکسل و ترفندهای کاربردی در این زیمنه کرده ایم .
همچنیم می توانید مفاهیم برنامه نویسی VBA در محیط اکسل را در قالب ویدئوهای یک دقیقه ای در پیج ما مشاده کنید .
برای دسترسی به پیج ما در اینستاگرام کافی است برروی تصویر زیر کلیک کنید .
دیدگاهتان را بنویسید